import pandas as pd
import numpy as np

# 设置随机种子以确保结果可重现
np.random.seed(42)

# 创建示例数据
data = {
    'Age': np.concatenate([
        np.random.normal(25, 3, 50),  # 年轻人
        np.random.normal(40, 5, 50),  # 中年人
        np.random.normal(60, 7, 50)   # 年长者
    ]),
    'Income': np.concatenate([
        np.random.normal(30000, 5000, 50),  # 低收入组
        np.random.normal(60000, 10000, 50), # 中收入组
        np.random.normal(90000, 15000, 50)  # 高收入组
    ]),
    'Group': ['Young'] * 50 + ['Middle'] * 50 + ['Senior'] * 50,
    'Score': np.concatenate([
        np.random.normal(75, 10, 50),  # 组A
        np.random.normal(85, 8, 50),   # 组B
        np.random.normal(65, 12, 50)   # 组C
    ]),
    'Hours_Studied': np.random.normal(20, 5, 150),
    'Department': np.random.choice(['Math', 'Science', 'Arts'], 150)
}

# 创建DataFrame
df = pd.DataFrame(data)

# 添加一些异常值以使箱线图更有趣
df.loc[10, 'Income'] = 150000  # 高异常值
df.loc[80, 'Score'] = 30       # 低异常值
df.loc[120, 'Age'] = 18        # 低异常值

# 保存为CSV文件
df.to_csv('sample_data.csv', index=False)

print("CSV文件已创建成功！")
print("数据预览：")
print(df.head())
print(f"\n数据形状：{df.shape}")
print("\n各列数据类型：")
print(df.dtypes)